S3 バージョニングで特定のバージョンを復元したい
困っていたこと
バージョニングを有効化したS3バケットで、特定のバージョンを復元したいのですが方法が分かりません。
どうすればいいのか
特定バージョンを復元する方法について、AWSドキュメントに以下の記載があります。
以前のバージョンの復元 - Amazon Simple Storage Service
バージョニングを使用すると、オブジェクトの以前のバージョンを取得できます。この機能を実行するには 2 つの方法があります。
・オブジェクトの以前のバージョンを同じバケットにコピーします。
コピーされたオブジェクトはそのオブジェクトの最新バージョンになり、すべてのオブジェクトバージョンが維持されます。
・オブジェクトの最新バージョンを完全に削除します。
最新のオブジェクトバージョンを削除すると、結果として、以前のバージョンがそのオブジェクトの最新バージョンになります。
上記ドキュメントでは一旦以前のバージョンをダウンロードしてから該当バケットにアップロードする方法が紹介されていますが、 今回はCLIで以前のバージョンをコピーすることで最新バージョンとする方法をご紹介します。
手順
- バージョニングを有効にしたS3バケットにてバージョンがあるオブジェクトを選択→バージョンタブにて復元したいバージョンIDを確認します
2.以下のコマンドを実行します
aws s3api copy-object \
--bucket <バケット名> \
--copy-source "<バケット名>/<フォルダ名>/<オブジェクト名>?versionId=<バージョンID>" \
--key <フォルダ名>/<オブジェクト名>
3.コンソールから対象のオブジェクトの詳細ページを確認し、コピーしたバージョンが最新となっていることを確認します。